package netty.c1.EventLoop;

import io.netty.channel.nio.NioEventLoopGroup;

import java.util.concurrent.TimeUnit;

/**
 * @author Zed
 * @description
 * @date 2022/10/25 22:56
 */
public class TestEventLoop {
    public static void main(String[] args) {
        //1.创建事件循环组
        NioEventLoopGroup nioEventLoopGroup = new NioEventLoopGroup(2);//io事件，普通任务和定时任务
        //DefaultEventLoop defaultEventLoop = new DefaultEventLoop();普通任务和定时任务
        //2.获取下一个事件的循环对象
        System.out.println(nioEventLoopGroup.next());
        System.out.println(nioEventLoopGroup.next());
        System.out.println(nioEventLoopGroup.next());
        System.out.println(nioEventLoopGroup.next());
        //3.执行普通任务
        /*  nioEventLoopGroup.next().submit(()->{
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(Thread.currentThread().getName()+"----OK");
        });*/

        //4.执行定时任务
        nioEventLoopGroup.next().scheduleAtFixedRate(() -> {
            System.out.println(Thread.currentThread().getName() + "----OK");
        }, 0, 1, TimeUnit.SECONDS);
        System.out.println(Thread.currentThread().getName() + "----MAIN");
    }
}
